Computer, a method of connecting devices to data bus controllers, a method of allocating the bandwidth of a plurality of data bus controllers and apparatus therefor

ABSTRACT

A computer having a plurality of data bus controllers, a plurality of grouped controller ports and a plurality of connection elements for connecting the controllers to the ports;  
     characterised in that  
     the connection elements are arranged such that each controller may be connected to ports from different groups.

DESCRIPTION OF AND BACKGROUND TO THE INVENTION

[0001] This invention relates to a computer, a method of connectingdevices to data bus controllers, a method of allocating the bandwidth ofa plurality of data bus controllers and apparatus therefor.

[0002] More particularly, but not exclusively, the invention relates toa method of and to apparatus for allocating bandwidth of serial databuses such as USB's (Universal Serial Buses) where a plurality of suchbuses are provided in a computer, for connection with a plurality ofassociated serial devices.

[0003] As with all data bus interfaces, USB bandwidth is limited, withthe well-known USB 1.1 version having a theoretical maximum band widthof 12 Mbits per second, with this bandwidth being shared by all theserial devices connected to the various ports which in turn areconnected to the USB controller.

[0004] For low bandwidth devices such as mice, modems and some scanners,the relatively limited available bandwidth usually presents fewproblems, although devices requiring greater data throughput such ashard disc drives and web cams, for example, can, if used together,rapidly use up the available bandwidth, leading to “clogging” of theserial controller, which in turn results in greatly slowed datatransfer.

[0005] In extreme cases, this can make it impossible to use one of theconnected devices, leading to considerable user dissatisfaction andincreased calls, for example, to technical help desks.

[0006] Although faster serial buses such as the USB 2.0 are available,increases in serial bus bandwidth are invariably followed bycorresponding increases in the bandwidth required by modernised devices,and it has become apparent that mere expansion of the serial busbandwidth is unlikely to address this problem on anything more than atemporary basis.

[0007] Attempts have however been made to alleviate these difficulties,with these having concentrated primarily on the provision of computershaving more than one serial bus controller, thus making more bandwidthavailable to the various serial devices.

[0008] However, this in itself has not proved satisfactory.

[0009] As shown in FIG. 1 of the drawings, which illustrates the currentindustry standard way in which USB controllers are connected to serialports on a computer chassis, the connectivity between the USBcontrollers and their associated serial ports is such that each “pair”of ports is linked to just one USB controller. Although, with lowbandwidth devices, such a configuration can operate satisfactorily,problems arise where the sum of the bandwidth required by the twodevices connected to the ports forming a pair, exceeds that which isavailable from the associated USB controller.

[0010] This can be a particular problem where, say, one pair of ports islocated towards the front of a computer, with a second pair beinglocated towards the rear. What often happens, in practice, is that auser of the computer, having connected, for example, a web cam to oneport of the front pair, then connects a second device such as, forexample, a pair of USB speakers, in the next adjacent slot. As will beappreciated, this “fills” both ports of the front pair, and thus placesa heavy burden on the controller associated with it

[0011] At the same time, a rear-mounted pair is often left completelyunused, perhaps because access to the rear ports is difficult.

[0012] Thus, the current industry standard implementation can often giverise to a situation where one of the two (or more) serial controllers issaturated, but where at least one of the remaining controllers iscompletely unused, and thus has its full bandwidth lying dormant.

[0013] It is an object of the present invention to provide a computerwhich overcomes or at least alleviates these problems.

[0014] It is also an object of the present invention to provide a methodof connecting devices to data bus controllers and to provide a method ofallocating the bandwidth of a plurality of data bus controllers to aplurality of controller ports which achieves this result.

[0015] It is also an object of the present invention to provideapparatus for allocating the bandwidth of a plurality of data buscontrollers to a plurality of controller ports which offers advantagesover known apparatus.

SUMMARY OF THE INVENTION

[0016] According to a first aspect of the present invention, there isprovided a computer having a plurality of data bus controllers, aplurality of grouped controller ports and a plurality of connectionelements for connecting the controllers to the ports; characterised inthat the connection elements are arranged such that each controller maybe connected to ports from different groups.

[0017] Preferably, each controller is connected to at least two ports,the ports being in different groups.

[0018] The grouping of the ports may be spatial, in that the ports of agiven group are located on a chassis of the computer closer to oneanother than they are to ports of a different group.

[0019] Two of the groups may be located, respectively, towards or at thefront and rear of the chassis.

[0020] Preferably, the computer is provided with three controllers andsix ports, a first group of three ports being connected to threecontrollers, a second group of two ports being connected to twocontrollers, the sixth port being connected to one controller.

[0021] Conveniently, a switch element is provided, whereby thearrangement of the connection elements may be modified.

[0022] Each port may have a switch element associated therewith, so thatthe ports may each be connected to one of at least two controllers.

[0023] The controller to which the port is connected is preferablydetermined in accordance with the data bus bandwidth required by adevice connected to said port.

[0024] Alternatively or in addition, the controller to which the port isconnected may be determined in accordance with the bandwidth availableon the various controllers to which the port may be connected.

[0025] Preferably, the arrangement of the connection elements issoftware-controlled. However, the arrangement may also be controlled byappropriate hardware, by providing dedicated logic with the controllers,for example.

[0026] The software may be operative, prior to launch of the operatingsystem, to sense devices connected to the ports and to evaluate theirrequired bandwidth, so that the connection elements may be arranged tobalance the required bandwidths with the bandwidths available on thecontrollers by routing the ports to appropriate controllers.

[0027] The sensing may be continuous, in that the balancing is effectedduring the running of the operating system.

[0028] The software may be provided in the computer's BIOS.Alternatively, where the computer is suitably configured, the softwaremay be provided in the computer's shadow RAM.

[0029] Preferably, however, the software is provided in the operatingsystem, conveniently using a dedicated driver. This is likely to provideadvantages, in that the operating system is best able to identifyavailable bandwidth, bandwidth required by devices and the location ofconnected devices.

[0030] Although it will be appreciated by those well-versed in therelevant art that the invention is applicable to a wide variety ofsystems which employ data bus connections, the invention is aimed inparticular at computers having serial, and in particular USB,controllers.

[0031] It will be appreciated from the foregoing that the inventionprovides a computer which has the facility to optimise the bandwidthavailable from the various data bus controllers in that a balance can beachieved between the bandwidth “load” (i.e. the bandwidth needed by thevarious connected serial devices”) and the band width supply—i.e. thesum of the bandwidths available from the controllers concerned.

[0032] By connecting the ports of a given group to more than onecontroller, the load exerted on that group is effectively shared betweenthe plurality of associated controllers which, at one extreme, provideseach port of the group with the full bandwidth of a controller.

[0033] As will be appreciated, his is in stark contrast to the current,standard configuration, where sequential connection of devices togrouped controller ports can easily clog the single controller to whichthe ports are connected.

[0034] Moreover, the dynamic approach, provided by the use of switchelements associated with the connection elements, allows the loadbalancing to be effected continuously, in response, for example, to newdevices being connected to the ports.

[0035] According to a second aspect of the present invention, there isprovided a method of connecting devices to data bus controllers viacontroller ports comprising use of a computer in accordance with thefirst aspect of the present invention.

[0036] According to a third aspect of the present invention, there isprovided a method of connecting devices to data bus controllers viagroups of controller ports, wherein connection elements are arrangedbetween the controllers and ports in such a manner that each controllermay be connected to ports from different groups.

[0037] Preferably, each port is provided with a switch element, theswitch elements being operative to connect each port to one of at leasttwo controllers.

[0038] The controller to which each port is connected may be determinedin accordance with the data bus bandwidth required by the deviceconnected to each said port.

[0039] Preferably, the controller to which each port is connected isdetermined in accordance with the bandwidth available on the variouscontrollers to which the port may be connected.

[0040] The invention, in its third aspect, may comprise the use of acomputer in accordance with the first aspect of the present invention.

[0041] According to a fourth aspect of the present invention, there isprovided a method of allocating the bandwidth of a plurality of data buscontrollers to a plurality of controller ports to which devices areconnected, comprising:

[0042] a) sensing devices connected to the ports,

[0043] b) evaluating the bandwidth required by the devices,

[0044] c) evaluating the bandwidth available in the controllers, and

[0045] d) effecting connections between the ports and controllers;

[0046] characterised in that

[0047] e) in the event of a given device requiring more bandwidth thanis available from a first controller, a connection is effected betweensaid given device and a second controller.

[0048] Preferably, the connection is effected by operation of switchelements provided between the controllers and controller ports.

[0049] In accordance with a fifth aspect of the present invention, thereis provided apparatus for allocating the bandwidth of a plurality ofdata bus controllers to a plurality of controller ports to which devicesmay be connected, comprising a plurality of connection elements forconnecting the controllers to the ports, the connection elements beingarranged such that each controller may, selectively, be connected to aplurality of different ports.

BRIEF DESCRIPTION OF THE DRAWINGS

[0050] The invention, in its various aspects, will now be described ingreater detail, but strictly by way of example only, by reference to theaccompanying drawings, of which

[0051]FIG. 1 is a schematic illustration of the current industrystandard way of connecting serial data bus controllers to serial ports;

[0052]FIG. 2 is a schematic illustration of a static configuration ofcontrollers, ports and connection elements in accordance with theinvention, and

[0053]FIG. 3 is a schematic illustration of a dynamic—i.e.variable-configuration of the connection elements.

BEST MODE OF THE INVENTION

[0054] Referring first to FIG. 1, this shows, in schematic form, how USBcontrollers, their ports, and their intermediate connection elements arecurrently arranged, in accordance with Intel's industry standard.

[0055] As can be seen, a computer chassis 10 has attached thereto threeUSB 1.1 controllers 11, 12 and 13 to which are connected pairs of serialports 11 a/ 11 b, 12 a/ 12 b and 13 a/ 13 b. The pairs of ports areconnected to the three controllers by parallel connecting elements showngenerally at 14, 15 and 16 with the pairs of ports being physically“bundled” together by attachment plates or the like illustrated inschematic form at 17, 18 and 19. It will be appreciated, however, thatthe connection members 17, 18 and 19 do not effect any electrical- andhence data transfer-connection between the various ports—they simplymaintain the port pairs in position.

[0056] In the example shown in FIG. 1, the ports 11 a and 11 b aredisposed on the front side of the computer chassis 10, and thus mayserve, for example, to connect serial devices such as web cams and USBspeaker sets, which a user of the computer may wish to connect anddisconnect on a fairly regular basis.

[0057] In contrast, the ports 12 a and 12 b are disposed on the rearwall of the chassis and are thus likely to be considerably lessaccessible by the user.

[0058] The ports 13 a and 13 b, however, are located within the computerchassis, and serve to allow connection of appropriately configured USBcards.

[0059] As will be appreciated, the total bandwidth which is availablefrom each port is limited to the maximum bandwidth of the controller towhich each pair is attached. Thus, in the case of a USB 1.1 controller,the maximum bandwidth available between each pair of ports is 12 Mbitsper second. This, of course, is shared between each port of therespective pairs.

[0060] From this, it will be appreciated that the connection of tworelatively high bandwidth devices to a given pair of ports is verylikely to place an unacceptable bandwidth demand on the controller towhich the pair is connected, leading to greatly reduced functionality ofone or both of the devices, and consequently to user frustration andgeneral dissatisfaction.

[0061] It will be appreciated that this problem is exacerbated by thepositioning of the pairs of ports—a user, having connected a device,say, to port 11 a, is highly unlikely to connect an additional device toany of the ports connected to controllers 12 or 13, and is almostcertain, for reasons of convenience, to connect the next device to port11 b. This, as will be appreciated, can lead to saturation of thebandwidth available from controller 11, leaving the bandwidth availablefrom controllers 12 and 13 entirely “untouched”.

[0062]FIG. 2, representative of the invention, illustrates in schematicform how these prior art problems can be greatly alleviated.

[0063] In contrast to the arrangement shown in FIG. 1, the connectionelements shown in FIG. 2 (21, 22, 23, 24, 25 and 26) are routed from theports 31, 32, 33, 34, 35 and 36 in a manner whereby each controller 40,41 and 42 is connected to ports from different port groups 50, 51 and52.

[0064] The effect of this specific routing configuration is that themaximum bandwidth available from the port group 50 is three times thatwhich is available from a single controller—i.e. 36 Mbits per secondwhere the controllers are USB 1.1 (12 Mbits per second) controllers.

[0065] Similarly, the maximum bandwidth available from port group 51 is24 Mbits per second—i.e. twice that which is available from a single USB1.1 controller.

[0066] Port 36 has just 12 Mbits per second available, although as thisport is disposed internally of the chassis, it is less likely to be usedthan any of the preceding five.

[0067] The configuration shown in FIG. 2 enables the total availablebandwidth to be used in a far more efficient manner than has hithertobeen possible, as is illustrated by the following example. A user,wishing to connect a high bandwidth serial device to one of the threefront USB ports 31, 32 or 33 has the freedom to select any one of thethree available ports. On the assumption that no devices are connectedto the rear external ports 34 or 35, or to the internal port 36, each ofthe front ports 31, 32 and 33 offer the full bandwidth available fromthe associated controllers 41, 40 and 42. Should the user then wish toconnect an additional high bandwidth serial device, either of theremaining two ports In the group 50 may be used, as each of these willstill offer a full bandwidth capability from the two “unused”controllers. As will be appreciated, the same applies where a third highbandwidth serial device is connected to the front group of ports 50.

[0068] Conversely, should the user wish to connect two high bandwidthserial devices to the rear port group 51, each of the ports 34 and 35offer full bandwidth capability, on the assumption that the ports 31 and32, respectively, are not already used for connection of other highbandwidth devices.

[0069] It will thus be appreciated that whilst the total bandwidthavailable from the three controllers 40, 41 and 42 is still 36 Mbits persecond—as with the arrangement shown in FIG. 1—the available bandwidthcan be distributed far more efficiently by routing the variousconnection elements in the manner shown.

[0070]FIG. 3 shows, again in schematic form, how the invention can beput into practice on a dynamic basis, by providing connection elementsbetween the controllers and ports, whose arrangement can be modified inaccordance with the bandwidth required by various devices and thebandwidth available from the controllers to which the ports may beconnected.

[0071] To this end, the computer chassis 10, which in his example isprovided with two USB 1.1 controllers 60 and 61, has attached theretotwo groups of ports 71/72 and 73/74, the ports 71 and 72 being groupedtogether and provided towards the front of the computer chassis, theports 73 and 74 also being grouped but provided on a rear part of thechassis.

[0072] In contrast to the arrangements shown in FIGS. 1 and 2, in whichthe connection elements are fixed in relation to the chassis, theconnection elements shown in FIG. 3 are dynamic, in that the datapathways between the controllers 60 and 61 and the ports 71 to 74 arevariable. Specifically, the connection elements in this example comprise“controller-side” connection element parts 81, 82, 83 and 84, and anumber of “port-side” connection element parts 85, 86, 87 a, 87 b 87 c,88 a and 88 b.

[0073] Disposed between the controller-side and port-side connectionelement parts are a number of switch elements 90, 91 and 92 whichcomprise switch members 93, 94,95 and 96 and contact members 97, 98, 99,100, 101, 102, 103 and 104.

[0074] Switch members 93 and 94 are connected by a non-conductive (andhence non-data transferring) joining member 105, such that movement ofthe switch member 93 between the contacts 97 and 98 inducescorresponding movement of the switch member 94 between the contacts 99and 100, and vice versa.

[0075] With the connection element arrangement shown in FIG. 3 (i.e.with the switch members each in an “up” condition, in data transferringcontact with, respectively, contacts 97, 99, 101 and 103), attachment ofa serial device to port 71 will connect that device, via the port-sideconnection element part 85 and the controller-side connection elementpart 81, to the controller 60.

[0076] Should a further high bandwidth device then be attached to port72, this would be connected, via port-side connection element parts 87 aand 87 b and via controller-side connection element part 84, to thecontroller 61, thus also providing the additional device with fullbandwidth capability.

[0077] It will be appreciated by those skilled in the art that detectionmethods are already known whereby serial bus controllers such as USBcontrollers are able to determine, using electrical criteria or anadapted transaction(s) on the data bus, the bandwidth required by agiven serial device, once that device has been connected to a serialport. Thus, in the example just described, if the further deviceattached to port 72 were in fact found by the USB controller 61 to be alow bandwidth device, the invention also provides for the generation,conveniently by the operating system, in communication with the USBcontroller, of a control signal which is operative to change thepositions of the switch members 95 and 96, thus causing the furtherdevice—now attached to port 72—to be connected, via switch member 96 andcontact member 104, to the first controller 60, as the controller 60 islikely to have sufficient bandwidth remaining to accommodate the demandsof the device on port 72.

[0078] This, of course, leaves controller 61 with its full availablebandwidth, so that connection of a high bandwidth device to either ofports 73 or 74 will result in that device being connected to theunburdened controller 61, via the switch member 94 and contact 99 (inthe case of port 73) or via switch member 95 and contact 102 (in thecase of port 74).

[0079] As mentioned above, it is envisaged that software control of thearrangement of the connection elements (i.e. the positioning of theswitch members 93, 94, 95 and 96) is likely to be the most convenientmanner in which to effect the dynamic routing modification which theinvention provides for. To his end, appropriate software instructions110 may be contained within the computer's operating system 111, suchthat upon receipt of appropriate control signals 60 a or 61 a from thecontrollers 60 and 61, the control software 110 is operative to generateand dispatch command signals 120 to the switch elements 90, 91 and 92,to change the positions of the switch members 93 to 96, in accordancewith the bandwidth required by the connected devices, and the bandwidthavailable from the controllers 60 and 61.

[0080] Location of the control software within the operating system 111is particularly advantageous, as the operating system is best able toidentify available bandwidth, bandwidth required by devices and thelocation of connected devices.

[0081] However, to obtain a more reliable running environment, thecontrol software could also (or in addition) be provided as part of thecomputer's main BIOS 112, as shown schematically in dotted outline, andat 110 a. This would be advantageous as the BIOS is embedded in theMother Board, and is not thus operating system dependant. The controlsoftware could alternatively be contained within the computer's shadowRAM (where provided), to which the BIOS information is copied duringboot-up.

[0082] As further alternatives, the control software could conceivablybe contained within the controllers 60 and 61, although this couldresult in reduced efficiency of the controllers as the controllers maynot be able to obtain sufficient detailed information concerning theexact bandwidth required or requested by the various devices.

[0083] Lastly, it is also envisaged by the applicants that the controlsoftware 110/110 a could be configured so as to operate during real-timerunning of the computer and the already connected devices. Thus, in thecase of devices such as web cams and USB speakers, for example, whosebandwidth requirements vary in accordance with the tasks they perform(more complicated video sequences require more bandwidth, as do complexaudio files) the control software may monitor the bandwidth requirementof these devices on an ongoing basis, dynamically allocating bandwidthfrom the controllers to the devices as and when their needs dictate. Itwill however be appreciated that additional control software may berequired in order to compensate for the real-time switching ofcontrollers which is likely to occur as a result of this dynamicmonitoring, with this conveniently being provided in the operatingsystem 111.

[0084] In summary, the invention, in its various aspects, allows for agreat improvement to be obtained in the operating efficiency of acomputer of the type having a plurality of connected devices, byallocating bandwidth to the devices in accordance with their demands Inthe case of the “static” embodiment, this is achieved, quite simply, byappropriate routing of the connection elements between the controllersand the associated ports in such a manner that sequential connection ofdevices to the ports of a given group does not result in overloading—andhence clogging—of a single controller.

[0085] In the case of the “dynamic” embodiment, bandwidth allocation iseffected not only in accordance with the ports to which the devices areconnected, but also in accordance with their required bandwidth, and thebandwidth which is available from the various data bus controllersprovided in the computer.

[0086] Overall, use of the invention enables a far more efficient modeof operation to be obtained, leading, in turn, to less userdissatisfaction.

[0087] As a final point, it should be noted, for the avoidance of anydoubt, that the applicants envisage that the invention, in its variousaspects, could well be applied to a number of electronic devices where adata processing capability is required. Thus, the term “computer” asfeatured in this specification should be interpreted broadly, toencompass not only “computers” per se, but also a range of otherelectronic devices such as, for example, personal organisers, personaldigital assistants (PDA's) and network devices such as hubs andswitching units.

[0088] In the present specification “comprise” means “includes orconsists of” and “comprising” means “including or consisting of”.

[0089] The features disclosed in the foregoing description, or thefollowing claims, or the accompanying drawings, expressed in theirspecific forms or in terms of a means for performing the disclosedfunction, or a method or process for attaining the disclosed result, asappropriate, may, separately, or in any combination of such features, beutilised for realising the invention in diverse forms thereof.

1. A computer having a plurality of data bus controllers, a plurality ofgrouped controller ports and a plurality of connection elements forconnecting the controllers to the ports; characterised in that theconnection elements are arranged such that each controller may beconnected to ports from different groups.
 2. A computer according toclaim 1 wherein each controller is connected to at least two ports, theports being in different groups.
 3. A computer according to claim 1wherein the grouping of the ports is spatial, in that the ports of agiven group are located on a chassis of the computer closer to oneanother than they are to ports of a different group.
 4. A computeraccording to claim 1 wherein two of the groups are located,respectively, towards or at the front and rear of the chassis.
 5. Acomputer according to claim 1 having three controllers and six ports, afirst group of three ports being connected to three controllers, asecond group of two ports being connected to two controllers, the sixthport being connected to one controller.
 6. A computer according claim 1wherein a switch clement is provided, whereby the arrangement of theconnection elements may be modified.
 7. A computer according to claim 6wherein each port has a switch element associated therewith, so that theports may each be connected to one of at least two controllers.
 8. Acomputer according to claim 7 wherein the controller to which the portis connected is determined in accordance with the data bus bandwidthrequired by a device connected to said port.
 9. A computer according toclaim 7 wherein the controller to which the port is connected isdetermined in accordance with the bandwidth available on the variouscontrollers to which the port may be connected.
 10. A computer accordingto claim 1 wherein the arrangement of the connection elements issoftware controlled.
 11. A computer according to claim 10 wherein thesoftware is operative, prior to launch of the operating system, to sensedevices connected to the ports and to evaluate their required bandwidth,so that the connection elements may be arranged to balance the requiredbandwidths with the bandwidths available on the controllers by routingthe ports to appropriate controllers.
 12. A computer according to claim11 wherein the sensing is continuous, in that the balancing is effectedduring the running of the operating system.
 13. A computer according toclaim 11 wherein the software is provided in the computer's BIOS.
 14. Acomputer according to claim 11 wherein the software is provided in thecomputer's shadow RAM.
 15. A computer according to claim 11 wherein thesoftware is provided in the operating system.
 16. A computer accordingto claim 1 wherein the data bus controllers are USB controllers.
 17. Amethod of connecting devices to data bus controllers via controllerports comprising use of a computer in accordance with claim
 1. 18. Amethod of connecting devices to data bus controllers via groups ofcontroller ports, wherein connection elements are arranged between thecontrollers and ports in such a manner that each controller may beconnected to ports from different groups.
 19. A method according toclaim 18 wherein each port is provided with a switch element, the switchelements being operative to connect each port to one of at least twocontrollers.
 20. A method according to claim 19 wherein the controllerto which each port is connected is determined in accordance with thedata bus bandwidth required by the device connected to each said port.21. A method according to claim 18 wherein the controller to which eachport is connected is determined in accordance with the bandwidthavailable On the various controllers to which the port may be connected.22. A method according to claim 18 comprising use of a computer inaccordance with a computer having a plurality of data bus controllers, aplurality of grouped controller ports and a plurality of connectionelements for connecting the controllers to the ports; characterised inthat the connection elements are arranged such that each controller maybe connected to ports from different groups.
 23. A method of allocatingthe bandwidth of a plurality of data bus controllers to a plurality ofcontroller ports to which devices are connected comprising: a) sensingdevices connected to the ports, b) evaluating the bandwidth required bythe devices, c) evaluating the bandwidth available in the controllers,and d) effecting connections between the ports and controllers;characterised in that e) in the event of a given device requiring morebandwidth than is available from a first controller, a connection iseffected between said given device and a second controller.
 24. A methodaccording to claim 23 wherein the connection is effected by operation ofswitch elements provided between the controllers and the controllerports.
 25. Apparatus for allocating the bandwidth of a plurality of databus controllers to a plurality of controller ports to which devices maybe connected, comprising a plurality of connection elements forconnecting the controllers to the ports, the connection elements beingarranged such that each controller may, selectively, be connected to aplurality of different ports.